-- lua的基本使用

-- lua 操作文件
-- local file = io.open('./index.txt', 'w')  -- 第二个参数 w 表示写 r表示读
-- file.write(file, 'hjkhfdjas')   -- 覆盖写入
-- file:write('hjkhfdjas')    -- 语法糖， 使用 : 简写
local file = io.open('./index.txt', 'r')  -- 第二个参数 w 表示写 r表示读
-- local content = file.read(file, '*a')  -- *a 表示获取全部
local content = file:read('*a')  -- 语法糖,简写, 相当于 file当成第一个参数传了
print(content)

-- 导入模块使用
local M = require('./module')
print(M.add(1, 2))

-- 全局变量 不加任何修饰符
name = 'zhangsan'
--重新赋值
name = 'lili'
-- 输出
print(name)

-- do end 表示一个块，一个作用域
do

    -- 局部变量
    local age = 18
    print(age)

end

print(age)  -- 不可以，没有值

-- 数据类型
-- nil 表示 null 空值  
-- local type = nil
-- 布尔 整数  浮点  字符串
-- type = 1
-- type = 0.1
-- type = false
-- type = 'abc'
-- table 可以表示对象、数组
-- 数组 
local arr = {1, 2, 3}
print(arr[1])  -- 1  索引从 1 开始
-- 对象
local obj = {
    name = 'lisi',
    age = 20
}
print(obj.name)
print(obj.age)

-- 条件语句  if else
local a = 1
if a == 1 then
    print(1)
elseif a==2 then
    print(2)
else
    print(3)
end
-- 一般要以 end  结尾

-- 函数
function func(asd)
    if asd == 1 then
        return 'a'
    elseif asd == 2 then
        return 'b'
    else
        return 'c'
    end
end
print(func(1))

-- 循环
-- 从1开始，循环10 遍 ，步长为 1 (步长不写，默认是 1)
for i = 1, 10, 1 do
    print(i)
end

local table_arr = {10, 20, 30}
-- 循环 数组 要用到 迭代器 ipairs, 并且 lua脚本语言的索引从 1 开始
for index, value in ipairs(table_arr) do
    print(index, value)
end

-- 循环 对象 要用到 迭代器 pairs, 并且 lua脚本语言的索引从 1 开始
local table_obj = {
    a = 10,
    b = 20, 
    c = 30
}
for key, value in pairs(table_obj) do
    print(key, value)
end
